/*
 * ConfigurationForm.java 
 */
package gui;

import data.GeneralDefinitions.ClusteringPriorityParameters;
import data.GeneralDefinitions.OrderingParameters;
import java.awt.Dimension;
import java.awt.Frame;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.JOptionPane;
import main.ToEngineFacade;

/**
 *
 * @author  Elad
 */
public class ConfigurationForm extends javax.swing.JFrame {

    private ToEngineFacade toEngineFacade;
    private double price;
    private double performance;
    private double powerConsump;
    OrderingParameters orderingParam = null; //0=Read, 1 = write (default)
    private Calendar startDate,  endDate;
    private Frame parentFrame;
    private SimpleDateFormat dateFrmt;

    /** Creates new form ConfigurationForm */
    public ConfigurationForm(Frame frame, ToEngineFacade toEngFacade) {
        setPreferredSize(new Dimension(650, 465));
        dateFrmt = new SimpleDateFormat("dd/MM/yyyy  HH:mm:ss");
        initComponents();
        parentFrame = frame;

        //default values for start and end Date
        startDate = Calendar.getInstance();
        endDate = Calendar.getInstance();
        endDate.add(Calendar.DAY_OF_MONTH, 7);
        startDateTextField.setText(dateFrmt.format(startDate.getTime()));
        endDateTextField.setText(dateFrmt.format(endDate.getTime()));

        //default values for params
        //    price = calcDefaultPrice();
        //      priceLimitTextField.setText(price + "");
        //     performance = calcDefaultPerformance();
        //     performanceLimitTextField.setText(performance + "");
        //     powerConsump = calcDefaultPowerConsump();
        //     powerConsumptionLimitTextField.setText(powerConsump + "");
        //       KBWrittenRadioButton.setSelected(true);
        //    orderingParam = orderingParam.kbWritten;
        toEngineFacade = toEngFacade;
    }

    //calculate the default power consumption limit, according to the input data (how much it should be if only SATA was used)
    /*private double calcDefaultPowerConsump() {
    //TODO  emplement this func!!
    double defaultpowerConsump = 100;
    return defaultpowerConsump;
    }*/

    //calculate the default performance limit, according to the input data (how much it should be if only SATA was used)
   /*private double calcDefaultPerformance() {
    //TODO  emplement this func!!
    double defaultPerformance = 100;
    return defaultPerformance;
    }*/

    //calculate the default price limit, according to the input data (how much it should cost if only SATA was used)
    /*private double calcDefaultPrice() {
    //TODO  emplement this func!!
    double defauktPrice = 100;
    return defauktPrice;
    }*/
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        OK_jButton = new javax.swing.JButton();
        changeEndDateAndTimeButton = new javax.swing.JButton();
        changeStartDateAndTimeButton = new javax.swing.JButton();
        startDateTextField = new javax.swing.JTextField();
        endDateTextField = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        back_jButton = new javax.swing.JButton();
        KBReadRadioButton = new javax.swing.JRadioButton();
        KBWrittenRadioButton = new javax.swing.JRadioButton();
        jLabel7 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        powerConsumptionLimitTextField = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        priceLimitTextField = new javax.swing.JTextField();
        performanceLimitTextField = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBackground(new java.awt.Color(3, 141, 187));

        OK_jButton.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        OK_jButton.setForeground(new java.awt.Color(57, 82, 148));
        OK_jButton.setText("OK");
        OK_jButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                OK_jButtonActionPerformed(evt);
            }
        });

        changeEndDateAndTimeButton.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        changeEndDateAndTimeButton.setForeground(new java.awt.Color(204, 0, 51));
        changeEndDateAndTimeButton.setText("Change End");
        changeEndDateAndTimeButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                changeEndDateAndTimeButtonActionPerformed(evt);
            }
        });

        changeStartDateAndTimeButton.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        changeStartDateAndTimeButton.setForeground(new java.awt.Color(204, 0, 51));
        changeStartDateAndTimeButton.setText("Change Start");
        changeStartDateAndTimeButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                changeStartDateAndTimeButtonActionPerformed(evt);
            }
        });

        startDateTextField.setBackground(new java.awt.Color(3, 141, 187));
        startDateTextField.setEditable(false);
        startDateTextField.setFont(new java.awt.Font("Tahoma", 1, 18));
        startDateTextField.setForeground(new java.awt.Color(255, 255, 255));
        startDateTextField.setText("jTextField1");

        endDateTextField.setBackground(new java.awt.Color(3, 141, 187));
        endDateTextField.setEditable(false);
        endDateTextField.setFont(new java.awt.Font("Tahoma", 1, 18));
        endDateTextField.setForeground(new java.awt.Color(255, 255, 255));
        endDateTextField.setText("jTextField1");

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel5.setText("End Date and Time:");

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel4.setText("Start Date and Time:");

        back_jButton.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        back_jButton.setForeground(new java.awt.Color(57, 82, 148));
        back_jButton.setText("Back");
        back_jButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                back_jButtonActionPerformed(evt);
            }
        });

        KBReadRadioButton.setBackground(new java.awt.Color(3, 141, 187));
        buttonGroup1.add(KBReadRadioButton);
        KBReadRadioButton.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        KBReadRadioButton.setForeground(new java.awt.Color(255, 255, 255));
        KBReadRadioButton.setText("KB Read");
        KBReadRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KBReadRadioButtonActionPerformed(evt);
            }
        });

        KBWrittenRadioButton.setBackground(new java.awt.Color(3, 141, 187));
        buttonGroup1.add(KBWrittenRadioButton);
        KBWrittenRadioButton.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        KBWrittenRadioButton.setForeground(new java.awt.Color(255, 255, 255));
        KBWrittenRadioButton.setText("KB Written");
        KBWrittenRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                KBWrittenRadioButtonActionPerformed(evt);
            }
        });

        jLabel7.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel7.setText("Ordering Parameter:");

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        jLabel3.setText("Power consumption limit");

        powerConsumptionLimitTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                powerConsumptionLimitTextFieldActionPerformed(evt);
            }
        });

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel2.setText("Performance limit");

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        jLabel1.setText("Price limit");

        priceLimitTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                priceLimitTextFieldActionPerformed(evt);
            }
        });

        performanceLimitTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                performanceLimitTextFieldActionPerformed(evt);
            }
        });

        jLabel6.setFont(new java.awt.Font("Bodoni MT Black", 1, 27)); // NOI18N
        jLabel6.setForeground(new java.awt.Color(227, 186, 196));
        jLabel6.setText("Parameters for Configuration:");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel4)
                            .addComponent(jLabel5))
                        .addContainerGap(400, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3)
                            .addComponent(jLabel1)
                            .addComponent(jLabel7))
                        .addGap(14, 14, 14)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(KBWrittenRadioButton, javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(performanceLimitTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(powerConsumptionLimitTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(priceLimitTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(KBReadRadioButton)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                            .addComponent(endDateTextField, javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(startDateTextField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE))
                                        .addGap(18, 18, 18)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                            .addComponent(changeEndDateAndTimeButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(changeStartDateAndTimeButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                                                .addComponent(back_jButton)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                                .addComponent(OK_jButton, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)))))))
                        .addContainerGap(38, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 457, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(130, Short.MAX_VALUE))))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel6)
                .addGap(45, 45, 45)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(priceLimitTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(performanceLimitTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(powerConsumptionLimitTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(KBWrittenRadioButton)
                    .addComponent(jLabel7))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(KBReadRadioButton)
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(startDateTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(changeStartDateAndTimeButton))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(endDateTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(changeEndDateAndTimeButton))
                .addGap(61, 61, 61)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(OK_jButton)
                    .addComponent(back_jButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(16, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void performanceLimitTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_performanceLimitTextFieldActionPerformed
        powerConsumptionLimitTextField.requestFocus();
}//GEN-LAST:event_performanceLimitTextFieldActionPerformed

    private void KBWrittenRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KBWrittenRadioButtonActionPerformed
        // System.out.println(" KBWrittenRadio "+KBWrittenRadioButton.getText());
        //KBWrittenRadioButton.setSelected(false);
}//GEN-LAST:event_KBWrittenRadioButtonActionPerformed

private void OK_jButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_OK_jButtonActionPerformed
    //TODO - save the last legal input val and get back to it after an ilegal val is given.
  //  System.out.println(" OK Botton clicked ");
    boolean isDateOk = true;

    //price
    try {
        price = Double.parseDouble(priceLimitTextField.getText());
        performanceLimitTextField.requestFocus();
    } catch (NumberFormatException numberFormatException) {
        System.out.println("  Price limit mustbe a double !");
        JOptionPane.showConfirmDialog(
                null,
                "Price limit must be a number!",
                "Parameter type error",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.OK_OPTION);
        priceLimitTextField.setText("");
        priceLimitTextField.requestFocus();
        return;
    }
    //performance
    try {
        performance = Double.parseDouble(performanceLimitTextField.getText());
        powerConsumptionLimitTextField.requestFocus();
    } catch (NumberFormatException numberFormatException) {
        System.out.println("  Performance limit must be a double !");
        JOptionPane.showConfirmDialog(
                null,
                "Performance limit must be a number!",
                "Parameter type error",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.OK_OPTION);
        performanceLimitTextField.setText("");
        performanceLimitTextField.requestFocus();
        return;
    }

    //power consumption
    try {
        powerConsump = Double.parseDouble(powerConsumptionLimitTextField.getText());
        KBWrittenRadioButton.requestFocus();
    } catch (NumberFormatException numberFormatException) {
        System.out.println("  Power consumption limit must be an int !");
        JOptionPane.showConfirmDialog(
                null,
                "Power consumption limit must be a number!",
                "Parameter type error",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.OK_OPTION);
        powerConsumptionLimitTextField.setText("");
        powerConsumptionLimitTextField.requestFocus();
        return;
    }

    //ordering parameter
    if (KBReadRadioButton.isSelected()) {
        orderingParam = OrderingParameters.kbRead;
    } else if (KBWrittenRadioButton.isSelected()) {
        orderingParam = OrderingParameters.kbWritten;
    } else {
        JOptionPane.showConfirmDialog(
                null,
                "Ordering Parameter must be choosen!",
                "Parameter missing error",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.OK_OPTION);
        //   isAllParamOk = false;
        return;
    }
    //check if start date is after end date
    if (isDateOk && startDate.compareTo(endDate) > 0) { //start date is after end date
        isDateOk = false;
        JOptionPane.showConfirmDialog(
                null,
                "End date cannot be befor Start date!",
                "Parameters error",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.OK_OPTION);
        startDateTextField.requestFocus();
        return;
    }
    toEngineFacade.computeConfiguration(price, performance, powerConsump, startDate, endDate, orderingParam);
}//GEN-LAST:event_OK_jButtonActionPerformed

private void changeStartDateAndTimeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeStartDateAndTimeButtonActionPerformed

    Calendar c = DateAndTimeSelector.showDateAndTimeSelector(this, "Date and Time Selector", startDate);
    startDate = c;
    startDateTextField.setText(dateFrmt.format(c.getTime()));
}//GEN-LAST:event_changeStartDateAndTimeButtonActionPerformed

private void changeEndDateAndTimeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeEndDateAndTimeButtonActionPerformed
    Calendar c = DateAndTimeSelector.showDateAndTimeSelector(this, "Date and Time Selector", endDate);
    endDate = c;
    endDateTextField.setText(dateFrmt.format(c.getTime()));
}//GEN-LAST:event_changeEndDateAndTimeButtonActionPerformed

private void back_jButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_back_jButtonActionPerformed
    parentFrame.setVisible(true);
    this.dispose();
}//GEN-LAST:event_back_jButtonActionPerformed

private void priceLimitTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_priceLimitTextFieldActionPerformed
    performanceLimitTextField.requestFocus();
}//GEN-LAST:event_priceLimitTextFieldActionPerformed

private void powerConsumptionLimitTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_powerConsumptionLimitTextFieldActionPerformed
    KBWrittenRadioButton.requestFocus();
}//GEN-LAST:event_powerConsumptionLimitTextFieldActionPerformed

private void KBReadRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_KBReadRadioButtonActionPerformed
}//GEN-LAST:event_KBReadRadioButtonActionPerformed
    /**
     * @param args the command line arguments
     */
    /*public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new ConfigurationForm().setVisible(true);
    }
    });
    }*/

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JRadioButton KBReadRadioButton;
    private javax.swing.JRadioButton KBWrittenRadioButton;
    private javax.swing.JButton OK_jButton;
    private javax.swing.JButton back_jButton;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JButton changeEndDateAndTimeButton;
    private javax.swing.JButton changeStartDateAndTimeButton;
    private javax.swing.JTextField endDateTextField;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField performanceLimitTextField;
    private javax.swing.JTextField powerConsumptionLimitTextField;
    private javax.swing.JTextField priceLimitTextField;
    private javax.swing.JTextField startDateTextField;
    // End of variables declaration//GEN-END:variables
}
